package com.storm.device.microscope;

public interface Microscope {

	/**
	 * open the connect
	 * @return
	 */
	public boolean open();
	/** 
	 * check if the Camera has been opened
	 * @return
	 */
	public boolean isOpen();
	public boolean moveXBy(double distance);
	public boolean moveXTo(double position);
	public String readyX();
	public boolean moveYBy(double distance);
	public boolean moveYTo(double position);
	public String readY();
	/**
	 * move z by a distance
	 * @param distance
	 * @return
	 */
	public boolean moveZBy(double distance);
	/**
	 * move z to a position
	 * @param position
	 * @return
	 */
	public boolean moveZTo(double position);
	/**
	 * read the state of Z direction 
	 * @return
	 */
	public String readZ();
	/**
	 * chose an OBJ, can use this to change the OBJ we are using
	 * @param objID
	 * @return
	 */
	public boolean choseOBJ(String objID);

	/**
	 * change TIFR by some value
	 * @param value
	 * @return
	 */
	public boolean changeTIRFBy(double value);
	/**
	 * change TIRF to a value
	 * @param value
	 * @return
	 */
	public boolean changeTIRFTo(double value);
}
